package com.minimalist.common.entity.lindi.po;

import com.minimalist.common.config.mybatis.InsertFullColumnHandler;
import com.minimalist.common.config.mybatis.UpdateFullColumnHandler;
import com.minimalist.common.config.mybatis.bo.BaseEntity;
import com.mybatisflex.annotation.Table;

import java.io.Serial;
import java.io.Serializable;
import java.util.Objects;

/**
 * 林地指标平台_镇街支付明细表 实体类。
 *
 * @author 11987
 * @since 2025-07-06
 */
@Table(value = "LINDI_SUBSIDY_APPLICATION_TOWN_PAYMENT", onInsert = InsertFullColumnHandler.class, onUpdate = UpdateFullColumnHandler.class)
public class LindiSubsidyApplicationTownPayment extends BaseEntity implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 补贴申请ID
     */
    private Long subsidyApplicationId;

    /**
     * 镇街支付明细ID
     */
    private Long subsidyApplicationTownPaymentId;

    /**
     * 支付通知ID
     */
    private Long subsidyApplicationPayNoticeId;

    /**
     * 镇街名称
     */
    private String townName;

    /**
     * 验收亩数
     */
    private String acceptAcreage;

    /**
     * 总金额(万元)
     */
    private String totalAmount;

    /**
     * 支付比例(%)
     */
    private String paymentRadio;

    /**
     * 当前支付金额(万元)
     */
    private String currentPaymentAmount;

    /**
     * 备注
     */
    private String remark;

    public LindiSubsidyApplicationTownPayment() {
    }

    public LindiSubsidyApplicationTownPayment(Long subsidyApplicationId, Long subsidyApplicationTownPaymentId, Long subsidyApplicationPayNoticeId, String townName, String acceptAcreage, String totalAmount, String paymentRadio, String currentPaymentAmount, String remark) {
        this.subsidyApplicationId = subsidyApplicationId;
        this.subsidyApplicationTownPaymentId = subsidyApplicationTownPaymentId;
        this.subsidyApplicationPayNoticeId = subsidyApplicationPayNoticeId;
        this.townName = townName;
        this.acceptAcreage = acceptAcreage;
        this.totalAmount = totalAmount;
        this.paymentRadio = paymentRadio;
        this.currentPaymentAmount = currentPaymentAmount;
        this.remark = remark;
    }

    public Long getSubsidyApplicationId() {
        return subsidyApplicationId;
    }

    public void setSubsidyApplicationId(Long subsidyApplicationId) {
        this.subsidyApplicationId = subsidyApplicationId;
    }

    public Long getSubsidyApplicationTownPaymentId() {
        return subsidyApplicationTownPaymentId;
    }

    public void setSubsidyApplicationTownPaymentId(Long subsidyApplicationTownPaymentId) {
        this.subsidyApplicationTownPaymentId = subsidyApplicationTownPaymentId;
    }

    public Long getSubsidyApplicationPayNoticeId() {
        return subsidyApplicationPayNoticeId;
    }

    public void setSubsidyApplicationPayNoticeId(Long subsidyApplicationPayNoticeId) {
        this.subsidyApplicationPayNoticeId = subsidyApplicationPayNoticeId;
    }

    public String getTownName() {
        return townName;
    }

    public void setTownName(String townName) {
        this.townName = townName;
    }

    public String getAcceptAcreage() {
        return acceptAcreage;
    }

    public void setAcceptAcreage(String acceptAcreage) {
        this.acceptAcreage = acceptAcreage;
    }

    public String getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(String totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getPaymentRadio() {
        return paymentRadio;
    }

    public void setPaymentRadio(String paymentRadio) {
        this.paymentRadio = paymentRadio;
    }

    public String getCurrentPaymentAmount() {
        return currentPaymentAmount;
    }

    public void setCurrentPaymentAmount(String currentPaymentAmount) {
        this.currentPaymentAmount = currentPaymentAmount;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        LindiSubsidyApplicationTownPayment that = (LindiSubsidyApplicationTownPayment) o;
        return Objects.equals(subsidyApplicationId, that.subsidyApplicationId) && Objects.equals(subsidyApplicationTownPaymentId, that.subsidyApplicationTownPaymentId) && Objects.equals(subsidyApplicationPayNoticeId, that.subsidyApplicationPayNoticeId) && Objects.equals(townName, that.townName) && Objects.equals(acceptAcreage, that.acceptAcreage) && Objects.equals(totalAmount, that.totalAmount) && Objects.equals(paymentRadio, that.paymentRadio) && Objects.equals(currentPaymentAmount, that.currentPaymentAmount) && Objects.equals(remark, that.remark);
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), subsidyApplicationId, subsidyApplicationTownPaymentId, subsidyApplicationPayNoticeId, townName, acceptAcreage, totalAmount, paymentRadio, currentPaymentAmount, remark);
    }

    @Override
    public String toString() {
        return "LindiSubsidyApplicationTownPayment{" +
               "subsidyApplicationId=" + subsidyApplicationId +
               ", subsidyApplicationTownPaymentId=" + subsidyApplicationTownPaymentId +
               ", subsidyApplicationPayNoticeId=" + subsidyApplicationPayNoticeId +
               ", townName='" + townName + '\'' +
               ", acceptAcreage='" + acceptAcreage + '\'' +
               ", totalAmount='" + totalAmount + '\'' +
               ", paymentRadio='" + paymentRadio + '\'' +
               ", currentPaymentAmount='" + currentPaymentAmount + '\'' +
               ", remark='" + remark + '\'' +
               '}';
    }
}
